Graphical user interfaces utilize windows to display the output of several different programs on a display device at the same time. As several windows may be opened at any one time, windows may be overlapped or fully obscured by other windows. Furthermore, computer input devices, such as keyboard and voice recognition microphones, can only be associated with one window at a time and must be switched between windows. This switching operation is called a focus change.
A focus change typically occurs when a user desires to interact with a window other than the one that currently has the focus. Focus may be defined as a state of a window or object on a display device which indicates where the results of a user's interaction with a user input device will occur. A user typically indicates their intent to change focus and to interact with a window other than the one that currently has the focus, by clicking with the mouse on the desired window, by typing some key sequence using the keyboard, or by speaking some specified words using a voice recognition application. Focus change usually results in the window which receives the focus, also becoming a top most window which guarantees visibility.
In some situations, programs cause a focus change which results in control being taken away from a user unexpectedly. Such unexpected focus change is considered poor design and should be avoided as a user's input is redirected from one window to another window if the user is typing or speaking when the focus change occurs. Because the results of such unanticipated and undesired changes can be unpredictable, such changes are very undesirable.
Additionally, when a situation occurs that requires a user's attention and the window that the user must access is obscured by another, the user may have a difficult time responding to the event, especially if it is a time-crucial event. For example, when a telephone application is implemented on a user's computer, and the user is working on another activity or task, a user may receive incoming telephone calls. When this situation is encountered in some prior art systems, the user may never be aware of the incoming call if the window that includes the telephone is obscured by another window and the user is deaf or partially deaf or has lowered the volume.
However, in other prior art systems, graphical user interfaces surface a message window to a top of the window system z-order, to bring the situation to the user's attention. It should be noted that a hierarchy of windows displayed on a display device is referred to as a z-order. This name refers to an imaginary "z-axis" which extends perpendicular to the plane of the display device screen. The position that a particular window occupies along the z-axis, that is, its z-order, determines an order in which the windows are drawn above and below the particular window. For more information on z-order, refer to Advanced OS/2 Presentation Manager Programming, by Thomas E. Burge, et al., published by John Wiley and Sons, Inc., which is incorporated by reference herein.
In these prior art systems, the newly surfaced window takes control of activation, or the input focus for keyboard events, and the user loses control over their current activities. Thus, where a user may have been typing a letter, their keyboard input is suddenly input to the message window. As previously mentioned, this is problematic because it takes control away from users, it forces users to deal with the situation or message even if they would rather not, and it is very likely that suddenly re-directed keyboard inputs may cause an undesired result. Typically, the new window is a modal dialog box, which requires a user to respond in some manner before being able to continue to work in the current application or activity. For more information on modal dialog boxes, refer to The Window Interface, An Application Design Guide, published by Microsoft Press in 1992, pp. 126-27, which is incorporated by reference herein.
Thus, it is desirable to have a graphical user interface that informs a user that a situation that requires the user's attention has occurred, but still allows the user to retain control over an application to which data from a user input device is provided.